package com.xiaoc.bulldozer.facade;

import com.xiaoc.bulldozer.common.dto.MenuNode;
import com.xiaoc.bulldozer.common.model.*;

import java.util.List;
import java.util.Map;

public interface PriviledgeFacade {

    /**
     * 获取所有角色的权限分组
     */
    public Map<Integer, Map<String, Object>> getAllRolePriviledge();

    /**
     * 获取所有的 Action
     *
     * @return
     */
    public Map<String, Object> getAllAction();

    /**
     * 更新角色的 Action
     *
     * @param actionIdArr
     * @param role
     */
    public void updateRolePriviledge(Integer[] actionIdArr, Role role);

    /**
     * 通过userId获取action list
     *
     * @param user
     */
    public List<Action> getActionListByUserId(User user);

    /**
     * 获取菜单树
     *
     * @param user
     * @return
     */
    public List<MenuNode> getMenuTree(User user, Integer system);

    /**
     * 根据角色获取权限
     *
     * @param roleId
     * @return
     */
    public Map<Integer, Priviledge> getPrivildegeByRoleId(Integer roleId);


    /**
     * 根据user,type 获取数据权限
     * @param user
     * @return
     */
    public List<DataPriviledge> getDataPrivildegeByUserAndType(User user, Integer type);




}
